package com.roc.admin.application.service;

import com.roc.admin.interfaces.dto.DeptDTO;

import java.util.List;

/**
 * 部门应用服务接口
 */
public interface DeptService {
    
    /**
     * 创建部门
     *
     * @param deptDTO 部门DTO
     * @return 部门ID
     */
    Long createDept(DeptDTO deptDTO);
    
    /**
     * 更新部门
     *
     * @param deptDTO 部门DTO
     * @return 是否成功
     */
    boolean updateDept(DeptDTO deptDTO);
    
    /**
     * 删除部门
     *
     * @param deptId 部门ID
     * @return 是否成功
     */
    boolean deleteDept(Long deptId);
    
    /**
     * 获取部门信息
     *
     * @param deptId 部门ID
     * @return 部门DTO
     */
    DeptDTO getDeptById(Long deptId);
    
    /**
     * 获取部门列表
     *
     * @return 部门DTO列表
     */
    List<DeptDTO> getDeptList();
    
    /**
     * 获取部门树
     *
     * @return 部门树
     */
    List<DeptDTO> getDeptTree();
    
    /**
     * 根据角色ID获取部门树
     *
     * @param roleId 角色ID
     * @return 部门树
     */
    List<DeptDTO> getDeptTreeByRoleId(Long roleId);
}
